package ae.pcfc.etks.online.itworx.ehs.web.dao.impl;

import java.io.Serializable;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;

@Repository
public abstract class BaseDAOImpl {

	// TODO check if this is really needed?
	@Autowired
	protected HibernateTemplate hibernateTemplate;

	protected JdbcTemplate jdbcTemplate;

	public HibernateTemplate getHibernateTemplate() {
		return hibernateTemplate;
	}

	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}

	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	public void saveObject(Object o) {
		getHibernateTemplate().getSessionFactory().getCurrentSession().save(o);

	}

	public void updateObject(Object o) {
		getHibernateTemplate().merge(o);

	}

	public <T> T getObject(Class<T> clazz, Serializable id) {

		return getHibernateTemplate().get(clazz, id);
	}

	public void removeObject(Object obj) {
		getHibernateTemplate().delete(obj);

	}
}
